Determining influence in a social networking system

ABSTRACT

An influence metric describing the influence of a social networking system object on social networking system users is determined based on affinities between the users and the object. For example, affinities between the associated users and the object are combined to determine the influence metric. Content may be selected for presentation to users based in part on influence metrics of the content. Additionally, influence metrics of objects associated with a user may be combined to determine the relevance of objects associated with the user, which may also be used to select content for presentation to the user.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.13/688,015, filed Nov. 28, 2012, now U.S. Pat. No. 9,224,174, which isincorporated by reference in its entirety.

BACKGROUND

This invention relates generally to social networking systems, and inparticular to determining measures of influence for objects maintainedby a social networking system.

A social networking system typically maintains a variety of objects,which each represent data maintained by the social networking system.Examples of objects maintained by a social networking system include: auser profile, a page, a page post, a status update, a photo, a video, alink, a shared content item, a gaming application achievement, acheck-in event at a local business, a brand page, or any other type ofcontent. As users perform interactions with social networking systemobjects, the social networking system stores information identifying aninteraction, a user performing the interaction, and an object associatedwith the interaction. Examples of interactions include viewing anobject, commenting on an object, sharing an object, expressing apreference for an object (“liking” the object), or other types ofinteractions.

The social networking system may determine the relevance of an object toa user based on interactions between the user and the object. Forexample, the number of times the user interacts with an object, thefrequency with which a user interacts with the object, communications bythe user associated with the object, an expression of the user'spreference for the object, and/or other interactions with the object maybe used to determine the relevance of the object to the user. Inaddition to allowing users to interact with objects, the socialnetworking system allows users to establish connections with other usersto share information. These connections between users may be used toidentify objects likely to be of interest to a user. For example, if twousers connected to each other frequently communicate via the socialnetworking system, the social networking system may infer that an objectrelevant to one of the users is likely to be also relevant to the otheruser.

Determining an object's relevance to a user based on the object'srelevance to other users connected to the user has limitations. Forexample, a first object may be very relevant to a first user, but notrelevant to a second user associated with the first user. Determiningrelevance based on user associations does not account for the universalrelevance of the object to users throughout the social networking system(the object's “influence” within the social networking system).Additionally, determining an object's relevance based on connectionsbetween users does not account for users being in different geographicregions. For example, if a user accesses the social networking systemwhile on vacation in a foreign country, objects associated with localbusinesses and tourist attractions may be less likely to be identifiedas relevant to the user, as other users connected to the user areunlikely to have interactions with objects associated with entities inthe foreign country.

SUMMARY

A measure of an aggregate relevance of an object to users throughout asocial networking system, or the “influence” of the object, isdetermined based on affinities that other users of the social networkingsystem have for the object. In one embodiment, a target object isidentified from the social networking system, and users associated withthe target object are identified. Examples of a target object include auser profile, a page, a content item, or any other suitable objectwithin the social networking system. A user may be associated with thetarget object if the user has established a connection to the targetobject or has interacted with the object. For example, if the targetobject is a user profile, identified users associated with the userprofile may have established connections with the user profile. Asanother example, if the target object is a content item, identifiedusers associated with the target object may be users that have viewedthe target object, commented on the target object, shared the targetobject, or performed other suitable interactions with the target object.

An affinity between each user associated with the target object and thetarget object is determined. For example, affinities stored by thesocial networking system are retrieved. A user's affinity for the targetobject may be a measure of relevance of the target object to a user, ameasure of a strength of relationship between the target object and theuser, or a measure of a value of the target object to the user.Interactions between a user and the target object are used to determinethe user's affinity for the target object. For example the affinitybetween a user and the target object may be based on a number ofinteractions performed on the target object by the user, based on afrequency of interactions performed on the target object by the user, orbased on types of interactions performed on the target object by theuser.

The accessed affinities are combined to determine an influence metricfor the target object. The accessed affinities can be combined bydetermining a median or mean of the affinities as the influence metric,by adding the accessed affinities and using the sum as the influencemetric, or by multiplying the accessed affinities and using the productas the influence metric. In one embodiment, the affinities are weightedas they are combined. For example, affinities may be weighted based onhow recently a user associated with an affinity performed an action,allowing the affinities of users more recently interacting with thetarget object to be more highly weighted. The influence metric is storedfor subsequent use. Influence metrics may be computed for multipleobjects in the social networking system. The influence metrics may beperiodically updated or influence metrics associated with differentobjects may be individually updated when a user interacts with an objectassociated with an influence metric.

Various actions may be performed by the social networking system basedon influence metrics associated with objects. For example, a story isselected for display to users of the social networking system based onthe influence metric associated with the story. Influence metricsassociated with stories may be used to order or rank stories presentedin a newsfeed or in a news ticker. An influence metric associated withan object may also control how the object is identified to a user. Forexample, an object's influence metric determines whether the object ispresented to a user via a news feed or via a notification.

Additionally, influence metrics associated with advertisements (“ads”)or with user profiles of users to which the ads are presented may beused when selecting ads. An advertiser may provide incentives for usershaving user profiles with at least a threshold influence score to allowthe advertiser to sponsor actions of the users. Alternatively, anadvertiser may identify user actions to sponsor based on the influencescores of user profiles. Further, location information or search resultsmay be presented or ordered based on influence metrics associated withcorresponding objects.

In one embodiment, the influence metrics for a plurality of targetobjects associated with a particular user are combined into a relevancemetric associated with the user, which describes the overall relevanceof objects associated with the user to the user. The relevance metricprovides an indication of the influence of the objects associated withthe user. To compute this relevance metric, a set of objects associatedwith a user is identified, and the influence metrics of each of the setof objects are combined to generate the relevance metric. As describedabove, an object may be considered to be associated with the user if theuser is connected to the object or has interacted with the object.

The relevance metric may be determined as the mean, median, sum, productor other statistical measure of the influence metrics. In oneembodiment, the influence metrics may be weighted prior to combination.A relevance metric may be used to select content for presentation to theuser associated with the relevance metric. For example, content may bepresented to users having a relevance metric above a threshold and notpresented to users having a relevance metric below the threshold. Asanother example, the social networking system may suggest actions tousers based on the associated relevance metric.

Additionally, relevance metrics for a set of users may be combined toform an aggregated relevance metric describing the relevance of objectsassociated with the set of users to the set of users. In one embodiment,the set of users has a common characteristic. For example, the set ofusers includes users with a common biographic characteristic or with acommon geographic characteristic. Content presented to the set of usersmay be based on the aggregated relevance metric associated with the setof users. For example, an advertiser may decide to present a particularadvertisement to users in Germany rather than to users in Bolivia basedon the aggregated relevance metrics for the different sets of users.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a system environment in which a socialnetworking system operates, in accordance with an embodiment of theinvention.

FIG. 2 is a block diagram of a social networking system, in accordancewith an embodiment of the invention.

FIG. 3 is a block diagram illustrating the determination of an influencemetric of an object of a social networking system, according to oneembodiment.

FIG. 4 is a flow chart of a process for determining an influence metricfor an object, according to one embodiment.

FIG. 5 is a block diagram illustrating the determination of a relevancemetric of a user of a social networking system, according to oneembodiment.

FIG. 6 is a flow chart of a process for determining a relevance metricfor a social networking system user, according to one embodiment.

The figures depict various embodiments of the present invention forpurposes of illustration only. One skilled in the art will readilyrecognize from the following discussion that alternative embodiments ofthe structures and methods illustrated herein may be employed withoutdeparting from the principles of the invention described herein.

DETAILED DESCRIPTION

System Architecture

FIG. 1 is a high level block diagram illustrating a system environment100 for a social networking system 140. The system environment 100comprises one or more client devices 110, a network 120, one or morethird-party websites 130 and the social networking system 140. Inalternative configurations, different and/or additional components maybe included in the system environment 100. The embodiments describedherein may be adapted to online systems that are not social networkingsystems.

A client device 110 is a computing devices capable of receiving userinput as well as transmitting and/or receiving data via the network 120.In one embodiment, a client device 110 is a conventional computersystem, such as a desktop or laptop computer. In another embodiment, aclient device 110 may be a device having computer functionality, such asa personal digital assistant (PDA), mobile telephone, smart-phone orsimilar device. A client device 110 is configured to communicate via thenetwork 120. In one embodiment, a client device 110 executes anapplication allowing a user of the client device 110 to interact withthe social networking system 140. For example, a client device 110executes a browser application to enable interaction between the clientdevice 110 and the social networking system 140 via the network 120. Inanother embodiment, a client device 110 interacts with the socialnetworking system 140 through an application programming interface (API)that runs on the native operating system of the client device 110, suchas IOS® or ANDROID™.

The client devices 110 are configured to communicate via the network120, which may comprise any combination of local area and/or wide areanetworks, using both wired and wireless communication systems. In oneembodiment, the network 120 uses standard communications technologiesand/or protocols. Thus, the network 120 may include links usingtechnologies such as Ethernet, 802.11, worldwide interoperability formicrowave access (WiMAX), 3G, 4G, code division multiple access (CDMA),digital subscriber line (DSL), etc. Similarly, the networking protocolsused on the network 120 may include multiprotocol label switching(MPLS), transmission control protocol/Internet protocol (TCP/IP), UserDatagram Protocol (UDP), hypertext transport protocol (HTTP), simplemail transfer protocol (SMTP) and file transfer protocol (FTP). Dataexchanged over the network 120 may be represented using technologiesand/or formats including hypertext markup language (HTML) or extensiblemarkup language (XML). In addition, all or some of links can beencrypted using conventional encryption technologies such as securesockets layer (SSL), transport layer security (TLS), and InternetProtocol security (IPsec).

A third party website 130 may be coupled to the network 120 forcommunicating with the social networking system 140, which is furtherdescribed below in conjunction with FIG. 2. In one embodiment, the thirdparty website 130 is an electronic mail server or another messagingserver receiving messages from users and routing the received messagesto other users for presentation via client devices 110. The third partywebsite 130 may maintain accounts for various users and directs messagesto various user accounts to communicate messages or other content to theusers.

FIG. 2 is an example block diagram of an architecture of the socialnetworking system 140. The social networking system 140 includes a userprofile store 205, a content store 210, an action logger 215, an actionlog 220, an edge store 230, an influence calculator 235, a relevancecalculator 240, a content selector 245 and a web server 250. In otherembodiments, the social networking system 140 may include additional,fewer, or different components for various applications. Conventionalcomponents such as network interfaces, security functions, loadbalancers, failover servers, management and network operations consoles,and the like are not shown so as to not obscure the details of thesystem architecture.

Each user of the social networking system 140 is associated with a userprofile, which is stored in the user profile store 205. A user profileincludes declarative information about the user that was explicitlyshared by the user, and may also include profile information inferred bythe social networking system 140. In one embodiment, a user profileincludes multiple data fields, each data field describing one or moreattributes of the corresponding user of the social networking system140. The user profile information stored in user profile store 205describes the users of the social networking system 140. Examples ofinformation stored in a user profile include biographic, demographic,and other types of descriptive information, such as work experience,educational history, gender, hobbies or preferences, location and thelike. A user profile may also store other information provided by theuser, for example, images or videos. In certain embodiments, images ofusers may be tagged with identification information of users of thesocial networking system 140 displayed in an image. A user profile inthe user profile store 205 may also maintain references to actions bythe corresponding user performed on content items in the content store210 and stored in the action log 220.

Additionally, a user profile includes information for communicating witha corresponding user outside of the social networking system 140. Forexample, the user profile includes one or more electronic mail (email)addresses for communicating content to the user through an email server,or other third party website 130, external to the social networkingsystem 140. As another example, a user profile includes a telephonenumber or other contact information for interacting with a correspondinguser through a communication channel outside of the social networkingsystem 140.

While user profiles in the user profile store 205 are frequentlyassociated with individuals, allowing people to interact with each othervia the social networking system 140, user profiles may also be storedfor entities such as businesses or organizations. This allows an entityto establish a presence on the social networking system 140 forconnecting and exchanging content with other social networking systemusers. The entity may post information about itself, about its productsor provide other information to users of the social networking systemusing a brand page associated with the entity's user profile. Otherusers of the social networking system may connect to the brand page toreceive information posted to the brand page or to receive informationfrom the brand page. A user profile associated with the brand page mayinclude information about the entity itself, providing users withbackground or informational data about the entity.

The content store 210 stores objects representing various types ofcontent. Examples of content represented by an object include a pagepost, a status update, a photo, a video, a link, a shared content item,a gaming application achievement, a check-in event at a local business,a brand page, or any other type of content. Objects may be created byusers of the social networking system 140, such as status updates,photos tagged by users to be associated with other objects in the socialnetworking system, events, groups or applications. In some embodiments,objects are received from third-party applications, which may beexternal to the social networking system 140. Content “items” representsingle pieces of content that are represented as objects in the socialnetworking system 140. Users of the social networking system 140 areencouraged to communicate with each other by posting text and contentitems of various types of media through various communication channels,increasing the interaction of users with each other and increasing thefrequency with which users interact within the social networking system.

The action logger 215 receives communications about user actions onand/or off the social networking system 140, populating the action log220 with information about user actions. Such actions may include, forexample, adding a connection to another user, sending a message toanother user, uploading an image, reading a message from another user,viewing content associated with another user, attending an event postedby another user, among others. In some embodiments, the action logger215 identifies interaction between a social networking system user and abrand page within the social networking system 140, which communicatestargeting criteria associated with content on the brand page to acontent selector to customize content from the brand page. In addition,a number of actions described in connection with other objects aredirected at particular users, so these actions are associated with thoseusers as well. These actions are stored in the action log 220.

The action log 220 may be used by the social networking system 140 totrack user actions on the social networking system 140, as well asexternal websites 130 that communicate information to the socialnetworking system 140. Users may interact with various objects on thesocial networking system 140, including commenting on posts, sharinglinks, and checking-in to physical locations via a mobile device,accessing content items or other interactions. Information describingthese actions is stored in the action log 220. Additional examples ofinteractions with objects on the social networking system 140 includedin the action log 220 include commenting on a photo album,communications between users, becoming a fan of a musician, adding anevent to a calendar, joining a groups, becoming a fan of a brand page,creating an event, authorizing an application, using an application andengaging in a transaction. Additionally, the action log 220 records auser's interactions with advertisements on the social networking system140 as well as other applications operating on the social networkingsystem 140. In some embodiments, data from the action log 220 is used toinfer interests or preferences of the user, augmenting the interestsincluded in the user profile and allowing a more complete understandingof user preferences.

The action log 220 may also store user actions taken on externalwebsites, such as third party website 130. For example, an e-commercewebsite that primarily sells sporting equipment at bargain prices mayrecognize a user of a social networking system 140 through socialplug-ins that enable the e-commerce website to identify the user of thesocial networking system 140. Because users of the social networkingsystem 140 are uniquely identifiable, e-commerce websites, such as thissporting equipment retailer, may use the information about these usersas they visit their websites. The action log 220 records data aboutthese users, including webpage viewing histories, advertisements thatwere engaged, purchases made, and other patterns from shopping andbuying.

In one embodiment, an edge store 230 stores the information describingconnections between users and other objects on the social networkingsystem 140 as edges. Some edges may be defined by users, allowing usersto specify their relationships with other users. For example, users maygenerate edges with other users that parallel the users' real-liferelationships, such as friends, co-workers, partners, and so forth.Other edges are generated when users interact with objects in the socialnetworking system 140, such as expressing interest in a page on thesocial networking system 140, sharing a link with other users of thesocial networking system 140, and commenting on posts made by otherusers of the social networking system 140.

The edge store 230 stores information describing characteristics ofedges, such as affinity scores for objects, interests, and other users.Affinity scores may be computed by the social networking system 140 overtime to approximate a user's affinity for an object, interest, and otherusers in the social networking system 140 based on the actions performedby the user. Hence an object's affinity for another object may infer therelevance of the objects to each other. For example, if a first user(represented by a first node) is connected to a second user (representedby a second node) with an edge associated with a high affinity and isalso connected to a third user (represented by a third node) with anedge associated with a lower affinity, an action taken by the seconduser may be inferred to be more relevant to the first user than anaction taken by the third user. In another example, if a user frequentlyviews a first image but does not frequently view a second image, ahigher affinity may represent the connection between the user and thefirst image than the connection between the user and the second image.Accordingly, the affinity between a user and an object may be affectedby the number, frequency, or type of interactions between the user andthe object, by the type of association or connection between the userand the object, and/or by an inferred value of the object to the user,such as common objects or information associated with both the user andthe object. A user's affinity may be computed by the social networkingsystem 140 over time to approximate a user's affinity for an object,interest, and other users in the social networking system 140 based onthe actions performed by the user. Computation of affinity is furtherdescribed in U.S. patent application Ser. No. 12/978,265, filed on Dec.23, 2010, which is hereby incorporated by reference in its entirety.

Multiple interactions between a user and a specific object may be storedin one edge object in the edge store 230, in one embodiment. For exampletwo users may be connected by an edge representing a familialrelationship, an edge representing a tagging of a user in a photographby the other user, another edge representing a message from a user tothe other user, and so forth. If multiple edges connect two objects, acombination of the affinities associated with each edge may be used toinfer the relevance of the objects corresponding to the connectedobjects. For example, the average, weighted average, sum, weighted sum,or other combination of the affinities associated with the edges may beused to make inferences about the relevance of the objects correspondingto objects connected to each other by multiple edges. For simplicity, asused herein, an affinity associated with an edge refers to a singleaffinity associated with the edge between nodes representing theobjects, although the single affinity may represent a combination ofmultiple affinities associated with multiple edges between objects. Insome embodiments, connections between users may be stored in the userprofile store 205, or the user profile store 205 may access the edgestore 230 to determine connections between users.

The influence calculator 235 determines an influence metric for a targetobject maintained by the content store 210 or the user profile store205. The influence metric describes the relevance of the target objectsto overall users of the social networking system 140. Hence, theinfluence metric describes a global relevance of an object to multiplesocial networking system users. As further described below inconjunction with FIGS. 3 and 4, the influence calculator 235 identifiesusers associated with the target object based on data in the edge store230 and determines the influence metric for the target object based onthe affinities associated with edges between the target object and theusers associated with the target object. For example, the influencemetric may be a mean or median of the affinities between each of theusers associated with the target object and the target object. It shouldbe noted that in some embodiments, the influence calculator 235 candetermine an influence metric for a set of target objects using theprinciples described herein. In such embodiments, the influencecalculator 235 identifies users associated with one or more of the setof target objects, determines affinities for the one or more of the setof target objects by each identified user, and combines the determinedaffinities to determine the influence metric for the set of targetobjects.

The relevance calculator 240 generates a relevance metric associatedwith a user from influence metrics calculated by the influencecalculator 235. The relevance metric represented the relevance ofobjects associated with a user to the user. For example, a userassociated with objects that are highly relevant to the user may have ahigher relevance metric than a user associated with objects lessrelevant to the user. In one embodiment, a relevance metric quantifiesan average relevance of a set of objects associated with a user (e.g.,objects with which the user interacted within a specified timeinterval); however, other methods of determining a relevance metric maybe computed. A user with a high relevance metric may have a newsfeed, ora news ticker, including stories are more likely to be relevant to theuser than a user with a lower relevance metric. Relevance metrics may bedetermined for multiple users having a specified characteristic andcombined to form an aggregated relevance metric for the set of users bythe relevance calculator 240. The aggregated relevance metric representsthe relevance of objects associated with the set of users to the usersin the set of users. Hence, relevance metrics and aggregated relevancemetrics may be used to select a user or a set of users for contentselection.

The content selector 245 selects content for presentation to a user ofthe social networking system 140. The content selector 245 can selectcontent to provide to a user based on influence metrics from theinfluence calculator 235 and/or relevance metrics from the relevancecalculator 240. For example, the content selector 245 identifies objectshaving the highest influence metrics or having influence metrics of atleast a threshold value for presentation in stories presented to a user.Additionally, the content selector 245 can rank stories displayed withina newsfeed or news ticker based on the influence metric of an objectassociated with each displayed story. Recommendations of objects oractions may also be made based on influence metrics associated withobjects associated with the actions, objects, and/or users. The contentselector 245 may also determining the order in which objects (e.g., theorder in which stories associated with objects are presented in a user'snews feed) based in part on the influence metrics associated with theobjects.

Based on influence metrics, the content selector 245 may also maintainrankings of objects maintained by the social networking system 140. Aranking allows the content selector 245 to identify the most influentialobjects maintained by the social networking system 140. The ranking maybe provided to advertisers to encourage bidding for advertisementsassociated with more influential objects or may be used to recommendobjects or actions for social networking system users.

Additionally, the content selector 245 may use an influence metricassociated with an object to determine how the object is presented to auser. For example, objects associated with the highest influence metricsor with influence metrics having at least a threshold value arepresented to a user via a notification message. The notification messagemay be presented to the user via a mobile device, and may becommunicated to the user without being requested by the user.

Further, advertisements (“ads”) may be selected by the content selector245 based at least in part on an influence metric associated with thead, with the user, and/or with an object associated with the user. Forexample, an advertisement with at least a threshold influence metric maybe presented to a user having an influence metric less than a thresholdvalue. As another example, the content selector 245 identifies an objecthaving at least a threshold influence metric and connected to the userand selects an advertisement associated with the identified object forpresentation to the user. Advertisers may provide the social networkingsystem 140 with influence metric ranges, influence metric thresholds, orother descriptions of influence metrics when bidding for advertisementpresentation by the social networking system 140.

Influence metrics associated with user profiles may be used byadvertisers to sponsor distribution of stories describing actions takenby social networking system users. For example, an advertiser mayprovide incentives to a user having at least a threshold influence valueto increase the likelihood the user allows the advertiser to sponsordistribution of stories describing actions performed by the user.Examples of incentives provided to a user include: sponsoring a user'spurchase of an item, offering a discount or rebate to a user purchasingan item, crediting a user for future purchases of items associated withthe advertiser, or other suitable incentives. As an additional examplean advertiser may provide a user with a “premium experience,” such as asample of a product, a discount at a restaurant or other business, freeor discounted tickets to events, and the like based on the user'sinfluence metric. In return, the user performs an action associated withthe advertiser (e.g., posting content to the social networking system,checking-in to a location, attend an event, upload an image, or anyother suitable action).

In some embodiments, the incentive offered to a user is based on theuser's influence metric, allowing users with higher influence metrics toreceive more substantial incentives than users with lower influencemetrics. For example, the incentives provided by the advertiser for asponsored action by a user having an influence metric of at least athreshold value are greater than the incentives provided to a userhaving an influence metric less than the threshold value. If a userallows an advertiser to sponsor actions performed by the advertiser,stories describing the user performing a sponsored action are presentedto users connected to the user allowing the advertiser to sponsoractions. This allows advertisers to leverage the influence metrics ofcertain users to gain exposure and visibility among the users connectedto the user.

Additionally, the content selector 245 may select objects for display ina map interface or may select objects for search results based on theinfluence metrics associated with the objects. For example, the contentselector 245 identifies locations or events near a user based onlocation information received from a client device 110 and influencemetrics associated with objects associated with the locations or events.For example events, advertisements, or other objects associated withlocations within a threshold distance of the location information havingat least a threshold influence metric or having the highest influencemetrics are displayed. Alternatively, the influence metric associatedwith the user from which location information was received may be usedto select objects for presentation. Further, objects associated withsearch results may be ranked based on their corresponding influencemetrics; for example, search results associated with objects havinghigher influence metrics are more prominently presented. As anotherexample, search results associated with objects having less than athreshold influence metric are not displayed.

In addition to selecting content, influence metrics may be used toallocate other social networking system 140 resources. For example,increased bandwidth, human operator time, processing resources, andother users may be allocated to users having the highest influencemetrics or having at least a threshold influence metric. Resources forgrowing user interaction with the social networking system or a userbase of the social networking system may similarly be allocated based oninfluence metrics. For examples, users with high influence metrics andassociated with certain regions or other categorizations may receive anincreased number of recommendations, offers, and the like can betargeted to users to encourage engagement with the social networkingsystem 140. Prioritizing resources for increasing user interaction tousers in certain regions or categories based on influence metrics allowsthe social networking system 140 to target growth in particularlocations or categories.

Additionally, the content selector 245 may use relevance metrics whenselecting content for users. This allows the content select 245 toaccount for the relevance of content previously associated with a userwhen presenting content to the user. For example, different types ofobjects may be selected for presentation to a user if the user isassociated with a relevance metric less than a threshold value. As therelevance metric indicates the relevancy of objects associated with theuser to the user, if the objects associated with the user have a lowrelevance, objects with different attributes may subsequently beselected for the user.

The content selector 245 can also use aggregated relevance metrics incombination with influence metrics when selecting content for sets ofusers. For example, the content selector 245 can prioritize users in aset of users with an influence metric that is higher relative to theaggregated relevance metric of the set of users for selection anddisplay of content. In addition, aggregated relevance metrics can beused to target particular markets of users; if a first set of users isassociated with a higher aggregated relevance metric than a second setof users, the content selector 245 can select stories or ads for displayto the second set of users. In such an embodiment, the second set ofusers may have, on average, less relevant content displayed to them (forinstance, in their newsfeeds) than the first set of users, and contentselected for display by the content selector 245 may accordingly be morerelevant to the second set of users.

The web server 250 links the social networking system 140 via thenetwork 120 to the one or more client devices 110, as well as to the oneor more third party websites 130. The web server 250 serves web pages,as well as other web-related content, such as JAVA®, FLASH®, XML and soforth. The web server 250 may provide the functionality of receiving androuting messages between the social networking system 140 and the clientdevice 110, for example, instant messages, queued messages (e.g.,email), text and SMS (short message service) messages, or messages sentusing any other suitable messaging technique. A user may send a requestto the web server 250 to upload information, for example, images orvideos that are stored in the content store 210. Additionally, the webserver 250 may provide API functionality to send data directly to nativeclient device operating systems.

Social Networking System Influence Determination

FIG. 3 is a block diagram of a process for determining an influencemetric of an object of a social networking system 140. As shown in FIG.3, a target object 310 is identified to the influence calculator 235,which identifies users 305 a, 305 b, 305 c, 305 d (also referred toindividually and collectively using reference number 305) associatedwith the target object 310. For example, the influence calculator 235identifies users having an edge to the target object 310 from the edgestore 230. In one embodiment, the influence module 235 identifies allusers associated with the target object 310. Alternatively, theinfluence module 235 identifies a subset of users associated with thetarget object 310, such as a threshold number of users or users having athreshold affinity for the target object 310. A user 305 may beassociated with the target object 310 based on a connection between theuser 305 and the target object 310 or based on an interaction betweenthe user 305 and the target object 310.

Affinities AC_(a), AC_(b), AC_(c), and AC_(d) between each of the users305, 305 b, 305 c, 305 d and the target object 310 are determined fromthe edge store 230 and combined by the influence calculator 235 togenerate the influence metric IM₃₁₀ for the target object 310.Affinities maintained by the social networking system are typicallyunidirectional, so the affinities determined from the edge score 230 arethe affinities of the users for the target object 310. As describedabove in conjunction with FIG. 2, the affinity between a user 305 andthe target object 310 may be affected by the number, frequency, and typeof interactions between the user 105 and the target object 310, by thetype of connection between the user 105 and the target 310 object,and/or by an inferred value, such as additional common objects orinformation associated with both the user 305 and the target object 310.For example, if the target object 310 is a song, if the user 105 afrequently listens to the song, shares the song with other users, and/orpurchases and downloads the song, and if the user 105 b seldomly listensto the song, the affinity coefficient AC_(a) associated with the user105 a may be higher than the affinity coefficient AC_(b) associated withthe user 105 b.

The influence module 235 combines the affinities AC_(a), AC_(b), AC_(c),and AC_(d) to determine an influence metric IM₃₁₀ describing therelevance of the target object 110 to users throughout the socialnetworking system 140. For example, the influence metric IM₃₁₀ is themean or median of the accessed affinities. Alternatively, the influencemodule 235 applies various weights to the accessed affinities anddetermines a mean or median of the weighted affinities. In oneembodiment, the accessed affinities are weighted based on timesassociated with interactions used to generate the affinities. Forexample, an affinity associated with an interaction occurring 5 minutesago is weighted more heavily an affinity associated with an interactionthat occurred 3 days ago.

In some embodiments, the influence module 235 can combine the accessedaffinities by determining IM₃₁₀ to be the weighted or unweighted sum orproduct of the accessed affinities. In other embodiments, any suitablecombination may be performed using the affinities AC_(a), AC_(b),AC_(c), and AC_(d). For example, the influence module 235 can normalizean influence metric based on the number of users 305 associated with thetarget object 310 or by the number of affinities retrieved by theinfluence module 235. In such an example, an influence metric may bediscounted if the set of users associated with the target object 310 isless than a threshold number.

The influence module 235 may also access affinities AC_(e), AC_(f),AC_(g) associated with users 315 e, 315 f, 315 g (also referred toindividually and collectively using reference number 315) associatedwith the target object 310 via user 305 c (“indirectly associatedusers”). For example, affinities AC_(e), AC_(f), AC_(g) for usersconnected to users 305 c associated with the target object 310, but notdirectly associated with the target object 310, are accessed and used tocalculate the influence metric IM₃₁₀. In some embodiments, the influencemodule 235 discounts affinities associated with indirectly associatedusers based on the amount of attenuation between the target object 310and the indirectly associated users. For example, affinities of users315 connected to users 305 associated with the target object 310 may beattenuated by 50%, or another amount, relative to affinities associatedwith users 305 associated with the target object 310. The attenuation ofaffinities associated with indirectly associated users may increasebased on the degree of separation between the target object 310 and theindirectly associated users.

An influence metric IM₃₁₀ may be numeric or non-numeric (e.g., a rankingof “high,” “medium,” “low,” and the like). The influence metric IM₃₁₀may be stored in the user profile store 205 or in the content store 210,depending on whether the target object 310 is a user profile or anobject. In one embodiment, an influence metric is determined and storedfor each object, including user profiles, in the social networkingsystem 140. The influence module 235 may periodically update storedinfluence metrics or may update a stored influence metric when aninteraction with the object is received. As described above inconjunction with FIG. 2, the content selector 245 may used influencemetrics associated with objects when selecting content for presentationto a user.

FIG. 4 is a flow chart of one embodiment of a process 400 fordetermining an influence metric of an object maintained by a socialnetworking system 140. A target object is identified 405 and usersassociated with the target object are identified 405. As describedabove, the target object may be a user profile, a page, an event, agroup, or other content item. Additionally, users associated with thetarget object are identified 405 as users connected to the target objectby an edge in the edge store. Thus, users associated with the targetobject may have an express connection to the target object or may haveperformed an interaction with the target object.

Affinities between each of the users associated with the target objectand the target object are determined 415 and combined, as describedabove in conjunction with FIG. 3, to determine the influence metric ofthe target object. Additional information, such as the number of usersassociated with the target object, the recency of interactions between auser associated with the target object and the target object, or othercriteria may also be used when determining the influence metric. Asdescribed above in conjunction with FIG. 1, the influence metric may bestored and subsequently used to select content for presentation to auser.

Social Networking System Relevance Determination

FIG. 5 is a block diagram of determining a relevance metric of a user ofa social networking system 140 according to one embodiment. As shown inFIG. 5, a target user 500 is identified by the relevance calculator 240and objects associated with the target user 500 are determined from theedge store 230. In various embodiments, the relevance calculator 240 mayidentify each object associated with the target user 500 or may identifya subset of objects associated with the target user 500 having one ormore specified characteristics. For example, the relevance module 240identifies objects with which the target user 500 has interacted withina threshold amount of time, identifies specific types of objectsassociated with the target user 500, identifies objects with which theuser of objects associated with the target user, or may identify objectsassociated with the target user with which the user has at least athreshold affinity, or identifies objects having any suitable criteria.

In the example of FIG. 5, the relevance calculator 235 identifies a user505, a page 510, a post 515, a user 520, and an image 525 associatedwith the target user 500. Also in the embodiment of FIG. 5, therelevance calculator 235 identifies objects associated with objectsassociated with the target user 500 (objects “indirectly associated”with the target user 500). For example, the relevance calculator 235identifies additional objects associated with the post 515, such as auser 530, a location 535, and a user 540. While FIG. 5 illustrateslimited types of objects associated with the target user 500, anysuitable type of object may be associated with the target user 500.

The relevance module 235 determines the influence metrics IM₅₀₅, IM₅₁₀,IM₅₁₅, IM₅₂₀, and IM₅₂₅ associated with each object associated with thetarget user 500. As described above, the influence metric of an objectrepresents the object's influence to social networking system users. Theinfluence metrics may be retrieved from the influence calculator 230,from the user profile store 205, and/or from the content store 210. Inone embodiment, influence metrics may be modified or updated when theobjects are identified by the relevance module 235. Additionalinformation may be used along with the influence metrics when generatingthe relevance metric.

To generate the relevance metric RM₅₀₀ associated with the target user500, the relevance module combines the influence metrics IM₅₀₅, IM₅₁₀,IM₅₁₅, IM₅₂₀, IM₅₂₅ associated with the identified objects. For example,the relevance metric RM₄₀₀ is the mean, median, sum, or product of theinfluence metrics. In some embodiments, the influence metrics areweighted and the weighted influence metrics are combined to determinethe relevance metric RM₅₀₀. For example, the relevance calculator 240module weights influence metrics based on the type of object associatedwith an influence metrics (e.g., influence metrics associated withobjects may have higher weights than influence metrics associated withposts). As another example, the influence metrics are weighted based onan affinity of the target user 500 for the objects associated with theinfluence metrics (e.g., a weight of an influence metric is proportionalto the affinity of the target user 500 for the object associated withthe influence metric).

The relevance calculator 240 may account for influence metrics for oneor more objects indirectly associated with the target user 500 whendetermining the relevance metric RM₅₀₀. In the example of FIG. 5,influence metrics IM₅₃₀, IM₅₃₅, IM₅₄₀ associated with objects associatedwith the post the post 415, but not directly associated with the targetuser 500 are retrieved. The relevance calculator 240 combines theseinfluence metrics IM₅₃₀, IM₅₃₅, IM₅₄₀ with the influence metrics IM₅₀₅,IM₅₁₀, IM₅₁₅, IM₅₂₀, IM₅₂₅ of objects directly associated with thetarget user 500 to generate the relevance metric RM₅₀₀. In someembodiments, influence metrics associated with indirectly associatedobjects may be attenuated; the amount of attenuation may be based on thedegree of separation between the target user 500 and the indirectlyassociated objects.

A relevance metric RM₅₀₀ may be numeric or non-numeric (e.g., a “high,”“medium,” or “low” ranking) In one embodiment, the relevance module 240determines a relevance metric for multiple users of the socialnetworking system 140 and stores the relevance metric associated with auser in the corresponding user profile in the user profile store 205.Stored relevance metrics may be periodically updated or may be updatedwhen a user interacts with an object. Because the relevance metric RM₅₀₀associated with the target user 400 indicates the relevance of objectsassociated with the target user 500 to the target user, the relevancemetric RM₅₀₀ may be used to infer the relevance of stories in a newsfeedor news ticker presented to the target user 500 associated with objectsassociated with the target user 500.

FIG. 6 is a flow chart of one embodiment of a process 600 fordetermining a relevance metric for a target user of a social networkingsystem 140. A target user is identified 605 by the relevancy calculator245, which also identifies 610 objects associated with the target userfrom the edge store 230. As described above, objects associated with thetarget user may be objects to which the target user has explicitlyestablished a connection or may be an object with which the target userhas interacted. Additionally, the objects may be identified 610 based onone or more criteria so that a subset of the objects associated with theobjects are identified 610. For examples objects having a specifiedtype, a threshold affinity with the target user, or other suitablecharacteristic are identified 610.

The relevancy calculator 240 retrieves 615 an influence metricassociated with each of the identified objects. In various embodiments,the influence metric is retrieved from the influence calculator 235, theuser profile store 205, and/or the content store 210. The influencemetrics are then combined by the relevancy calculator 240 to determinethe relevance metric. As described above in conjunction with FIG. 5, theinfluence metrics may be combined in any suitable manner to generate therelevancy score.

The relevancy calculator 240 may combine relevance metrics associatedwith a set of users to generate an aggregated relevance metrics for theset of users. Various criteria may be used to select the set of users.For example, the set of users includes users having at least one commoncharacteristic. Examples of the characteristic used to select the set ofusers include: a common place of employment, a common hometown, a commongeographic region, a common interest, a common hobby, or other suitablecharacteristic. The relevance metrics associated with each user in theset may be combined in any suitable manner. For example, the aggregatedrelevance metric is the mean or median of the relevance metrics. In oneembodiment, the relevance metrics associated with different users may bedifferently weighted, and the weighted relevance metrics are combined todetermine the aggregated relevance metric. Various characteristics ofthe users may be used when weighting the relevance metrics. For example,relevance metrics may be weighted based on geographic criteria, ordemographic criteria, influence metrics, or other data associated withthe users in the set of users.

Aggregated relevance metrics may be stored for different sets of usersfor use by the content selector 245 in selecting content for users. Forexample, an aggregated relevance metric is stored for sets of users indifferent countries, for sets of users in different age ranges, or forsets of users having any suitable common characteristic. In variousembodiments, the stored aggregated relevance metrics may be periodicallyupdated.

Summary

The foregoing description of the embodiments of the invention has beenpresented for the purpose of illustration; it is not intended to beexhaustive or to limit the invention to the precise forms disclosed.Persons skilled in the relevant art can appreciate that manymodifications and variations are possible in light of the abovedisclosure.

Some portions of this description describe the embodiments of theinvention in terms of algorithms and symbolic representations ofoperations on information. These algorithmic descriptions andrepresentations are commonly used by those skilled in the dataprocessing arts to convey the substance of their work effectively toothers skilled in the art. These operations, while describedfunctionally, computationally, or logically, are understood to beimplemented by computer programs or equivalent electrical circuits,microcode, or the like. Furthermore, it has also proven convenient attimes, to refer to these arrangements of operations as modules, withoutloss of generality. The described operations and their associatedmodules may be embodied in software, firmware, hardware, or anycombinations thereof.

Any of the steps, operations, or processes described herein may beperformed or implemented with one or more hardware or software modules,alone or in combination with other devices. In one embodiment, asoftware module is implemented with a computer program productcomprising a computer-readable medium containing computer program code,which can be executed by a computer processor for performing any or allof the steps, operations, or processes described.

Embodiments of the invention may also relate to an apparatus forperforming the operations herein. This apparatus may be speciallyconstructed for the required purposes, and/or it may comprise ageneral-purpose computing device selectively activated or reconfiguredby a computer program stored in the computer. Such a computer programmay be stored in a non-transitory, tangible computer readable storagemedium, or any type of media suitable for storing electronicinstructions, which may be coupled to a computer system bus.Furthermore, any computing systems referred to in the specification mayinclude a single processor or may be architectures employing multipleprocessor designs for increased computing capability.

Embodiments of the invention may also relate to a product that isproduced by a computing process described herein. Such a product maycomprise information resulting from a computing process, where theinformation is stored on a non-transitory, tangible computer readablestorage medium and may include any embodiment of a computer programproduct or other data combination described herein.

Finally, the language used in the specification has been principallyselected for readability and instructional purposes, and it may not havebeen selected to delineate or circumscribe the inventive subject matter.It is therefore intended that the scope of the invention be limited notby this detailed description, but rather by any claims that issue on anapplication based hereon. Accordingly, the disclosure of the embodimentsof the invention is intended to be illustrative, but not limiting, ofthe scope of the invention, which is set forth in the following claims.

What is claimed is:
 1. A method comprising: storing, in a socialnetworking system, a first set of associations between a plurality ofusers and a plurality of objects maintained by the social networkingsystem, and a second set of associations between pairs of the pluralityof users; identifying a target object maintained by the socialnetworking system; identifying a first set of users associated with thetarget object from the stored first set of associations, the first setof users comprising a plurality of users; determining a first set ofaffinities for the first set of users, the first set of affinitiescomprising an affinity for each of the first set of users for the targetobject; identifying a second set of users associated with at least oneof the first set of users from the stored second set of associations;determining a second set of affinities for the second set of users, thesecond set of affinities comprising an affinity for each of the secondset of users for at least one of the first set of users; weighting atleast one of the first set of affinities with the second set ofaffinities to produce a weighted set of affinities; generating aninfluence metric associated with the target object based on the weightedset of affinities, the influence metric representing a relevance of thetarget object to the set of users as a whole; and storing the influencemetric.
 2. The method of claim 1, wherein the target object comprisesone of a user, a page, a group, or a content item.
 3. The method ofclaim 1, wherein weighting at least one of the first set of affinitieswith the second set of affinities comprises determining a mean of thesecond set of affinities and weighting the at least one of the first setof affinities with the determined mean.
 4. The method of claim 1,wherein each of the second set of users has previously established aconnection with the at least one of the first set of users within thecontext of the social networking system.
 5. The method of claim 1,further comprising weighting each of the first set of affinities with adifferent second set of affinities to produce the weighted set ofaffinities.
 6. The method of claim 1, further comprising determiningwhether to present a story associated with the target object to one ormore additional users based at least in part on the influence metricassociated with the target object.
 7. The method of claim 6, wherein thestory comprises an action taken by a social networking system user inassociation with the target object.
 8. A system comprising: anon-transitory computer-readable storage medium storing executablecomputer instructions that, when executed by a processor, perform stepscomprising: storing a first set of associations between a plurality ofusers and a plurality of objects maintained by a social networkingsystem, and a second set of associations between pairs of the pluralityof users; identifying a target object maintained by the socialnetworking system; identifying a first set of users associated with thetarget object from the stored first set of associations, the first setof users comprising a plurality of users; determining a first set ofaffinities for the first set of users, the first set of affinitiescomprising an affinity for each of the first set of users for the targetobject; identifying a second set of users associated with at least oneof the first set of users from the stored second set of associations;determining a second set of affinities for the second set of users, thesecond set of affinities comprising an affinity for each of the secondset of users for at least one of the first set of users; weighting atleast one of the first set of affinities with the second set ofaffinities to produce a weighted set of affinities; generating aninfluence metric associated with the target object based on the weightedset of affinities, the influence metric representing a relevance of thetarget object to the set of users as a whole; and storing the influencemetric; and a hardware processor configured to execute the instructions.9. The system of claim 8, wherein the target object comprises one of auser, a page, a group, or a content item.
 10. The system of claim 8,wherein weighting at least one of the first set of affinities with thesecond set of affinities comprises determining a mean of the second setof affinities and weighting the at least one of the first set ofaffinities with the determined mean.
 11. The system of claim 8, whereineach of the second set of users has previously established a connectionwith the at least one of the first set of users within the context ofthe social networking system.
 12. The system of claim 8, wherein theinstructions, when executed, perform further steps comprising weightingeach of the first set of affinities with a different second set ofaffinities to produce the weighted set of affinities.
 13. The system ofclaim 8, wherein the instructions, when executed, perform further stepscomprising determining whether to present a story associated with thetarget object to one or more additional users based at least in part onthe influence metric associated with the target object.
 14. The systemof claim 13, wherein the story comprises an action taken by a socialnetworking system user in association with the target object.
 15. Anon-transitory computer-readable storage medium storing executablecomputer instructions that, when executed by a processor, perform stepscomprising: storing a first set of associations between a plurality ofusers and a plurality of objects maintained by a social networkingsystem, and a second set of associations between pairs of the pluralityof users; identifying a target object maintained by the socialnetworking system; identifying a first set of users associated with thetarget object from the stored first set of associations, the first setof users comprising a plurality of users; determining a first set ofaffinities for the first set of users, the first set of affinitiescomprising an affinity for each of the first set of users for the targetobject; identifying a second set of users associated with at least oneof the first set of users from the stored second set of associations;determining a second set of affinities for the second set of users, thesecond set of affinities comprising an affinity for each of the secondset of users for at least one of the first set of users; weighting atleast one of the first set of affinities with the second set ofaffinities to produce a weighted set of affinities; generating aninfluence metric associated with the target object based on the weightedset of affinities, the influence metric representing a relevance of thetarget object to the set of users as a whole; and storing the influencemetric.
 16. The computer-readable storage medium of claim 15, whereinthe target object comprises one of a user, a page, a group, or a contentitem.
 17. The computer-readable storage medium of claim 15, whereinweighting at least one of the first set of affinities with the secondset of affinities comprises determining a mean of the second set ofaffinities and weighting the at least one of the first set of affinitieswith the determined mean.
 18. The computer-readable storage medium ofclaim 15, wherein each of the second set of users has previouslyestablished a connection with the at least one of the first set of userswithin the context of the social networking system.
 19. Thecomputer-readable storage medium of claim 15, wherein the instructions,when executed, perform further steps comprising weighting each of thefirst set of affinities with a different second set of affinities toproduce the weighted set of affinities.
 20. The computer-readablestorage medium of claim 15, wherein the instructions, when executed,perform further steps comprising determining whether to present a storyassociated with the target object to one or more additional users basedat least in part on the influence metric associated with the targetobject.